
$(function(){
    function getPostsByPage(pageIndex,pageSize){
         $.ajax({
             type: 'get',
             // url: '/admin/posts/getAllPosts',
             url: '/admin/posts/getPostsByPage',
             data: {
                 pageIndex,
                 pageSize
             },
             success(res) {
                //  console.log(res.data)
                 if (res.code === 200) {
                     let html = template('template', res.data);
                     $('tbody').html(html);
                     makePagination(res.total);
                 }
             }
         })
    }
   
    getPostsByPage(1,10);
    // 把分页封装，让请求成功之后再生成分页按钮
    function makePagination(total){
        // 使用分页
        $('#page').twbsPagination({
            totalPages: total,
            visiblePages: 5,
            first: '首页',
            last: '尾页',
            prev: '上一页',
            next: '下一页',
            onPageClick: function (e, p) {
                // getPostsByPage(p, 10);
                // getPostCountByFilter(p,10)
            }
        });
    }

    // 动态加载所有分类
    $.ajax({
        type:'get',
        url: '/admin/category/getAllCategories',
        success(res){
            // console.log(res.data);
            let html = '<option value="0">所有分类</option>'
            res.data.forEach(e => {
                html += `<option value="${e.id}">${e.name}</option>`
            });
            $('#category').html(html);
        }
    });

    // 筛选分类和状态
     $('#serch').on('click', function (e) {
         e.preventDefault();
        $('#page').twbsPagination('destroy');
         getPostCountByFilter(1,10)
     })
      function getPostCountByFilter(pageIndex, pageSize) {
          let category = $('#category').val();
          let status = $('#status').val();
          // console.log(category, status);
          $.ajax({
              type: 'get',
              url: '/admin/posts/getPostsByFilter',
              data: {
                  category,
                  status,
                  pageIndex,
                  pageSize
              },
              success(res) {
                //   console.log(res.data);
                  let html = template('template', res.data);
                  $('tbody').html(html);
                  makePagination(res.total)
              }
          })
      }

    //   点击删除按钮
    let delTr=null
    // console.log($('.text-center'))
    // console.log($("#delete-btn"));
    $("tbody").on('click',"#delete-btn", function () {
        // console.log(111)
        delTr=$(this).parents('tr');
        $('#modelId').modal();
    });
    $('#del-sure').on('click',function(){
        $('#modelId').hide();
        // console.log(delTr)
        let id=delTr.attr('data-id');
        // console.log(id);
        $.ajax({
            type:'get',
            url: '/admin/posts/deletePostsById',
            data:{id},
            success(res){
                if(res.code==200){
                    delTr.remove();
                    $('#offDel').modal();
                }else{
                    $('.modal-body .container-fluid').text('删除失败')
                    $('#offDel').modal();
                }
            }
        })
    });
    $('#offBtn').on('click',function(){
         $('#offDel').hide();
    });
    // 先实现全选和点选
    $('thead input[type="checkbox"]').on('click',function(){
        let status=$(this).prop('checked')
        $('tbody input[type="checkbox"]').prop('checked', status)
    });
    // 如果是全选和勾选的数量超过两个， 就把批量删除按钮显示出来
    $('tbody').on('click', 'input[type="checkbox"]',function(){
        // console.log(222)
        let isCkekAll = $('tbody input[type="checkbox"]').length === $('tbody input[type="checkbox"]:checked').length;
        // console.log(isCkekAll);
         $('thead input[type="checkbox"]').prop('checked',isCkekAll);
         $('tbody input[type="checkbox"]:checked').length > 1 ? $('#mutiple').show() : $('#mutiple').hide();
    });
    // 给批量删除按钮注册点击事件
     
    $('#mutiple').on('click',function(){
        $('#mutipleId').modal();  
    })
    $('#mutipleDel').on('click',function(){
        $('#mutipleId').hide();
        // 获取所有的选中的多选框对应的文字id
        let ids = [];
        $('tbody input[type="checkbox"]:checked').each((i, e) => {
            let id = $(e).parents('tr').attr('data-id');
            ids.push(id);
        })
        // console.log(ids);
        $.ajax({
            type: 'get',
            url: '/admin/posts/deletePostByMutiple',
            data: {
                ids
            },
            success(res) {
                if (res.code === 200) {
                    $('tbody input[type="checkbox"]:checked').parents('tr').remove();
                }
            }
        })
        
    })

     })
   